﻿using System;
using System.Collections.Generic;
using System.Linq;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Audio;
using Microsoft.Xna.Framework.Content;
using Microsoft.Xna.Framework.GamerServices;
using Microsoft.Xna.Framework.Graphics;
using Microsoft.Xna.Framework.Input;
using Microsoft.Xna.Framework.Media;

namespace CapturarObjetos
{
    class ObjetoJogo
    {
        #region Atributos
        Model modelo;
        /// <summary>
        /// Representa a malha do objeto
        /// </summary>
        public Model Modelo { get { return modelo; } set { modelo = value; } }
        Vector3 posicao;
        /// <summary>
        /// Representa a posição do objeto no espaço
        /// </summary>
        public Vector3 Posicao { get { return posicao; } set { posicao = value; } }
        bool ativo;
        /// <summary>
        /// Representa se o objeto está ativo ou não
        /// </summary>
        public bool Ativo { get { return ativo; } set { ativo = value; } }
        BoundingSphere esferaColisao;
        /// <summary>
        /// Representa a esfera de colisão do objeto
        /// </summary>
        public BoundingSphere EsferaColisao { get { return esferaColisao; } set { esferaColisao = value; } }
        #endregion

        #region Métodos
        /// <summary>
        /// Construtor padrão com todos os atributos zerados
        /// </summary>
        public ObjetoJogo()
        {
            Modelo = null;
            Posicao = Vector3.Zero;
            Ativo = false;
            EsferaColisao = new BoundingSphere();
        }

        private void Desenhar(Model modelo, Camera camera)
        {
            foreach (ModelMesh mesh in modelo.Meshes)
            {
                foreach (BasicEffect effect in mesh.Effects)
                {
                    effect.EnableDefaultLighting();
                    effect.PreferPerPixelLighting = true;
                    effect.World = Matrix.Identity;

                    effect.View = camera.MatrizVisualizacao;
                    effect.Projection = camera.MatrizProjecao;
                }
                mesh.Draw();
            }
        }

        #endregion

    }
}